// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	9/22/2014 9:56:49 AM				
// -----------------------------

#ifndef _Camera_h
#define _Camera_h

#include "Actor.h"

class Camera : public Actor
{
public:
	Camera(const TString& Name);
	virtual ~Camera();

	virtual void	Update(Application* lpApp, Float deltaTime);

	void			SetFov(Float fov);
	void			SetNear(Float nearDist);
	void			SetFar(Float farDist);

	Matrix			GetView() const;
	Matrix			GetProjection() const;
	Float			GetFov() const;
	Float			GetNear() const;
	Float			GetFar() const;

private:

	Float			m_Fov;
	Float			m_NearDistance;
	Float			m_FarDistance;
	Matrix			m_View;
	Matrix			m_Projection;

	Camera(const Camera& refCamera);
	Camera& operator=(const Camera& refCamera);
};

#endif